import java.util.Date;
import java.util.ArrayList;

public class HipPatient extends PatientBase {
	// if add more data here, then you need to implement a clone() method
	
	private ArrayList<EventBase> eventsNeeded = new ArrayList<EventBase>();
	
	EventBase startTriage = EventFactory.create(EventType.StartTriagePatientEvent, this);
	EventBase startBedAssign = EventFactory.create(EventType.StartRoomBedAssignmentEvent, this);
	EventBase startBloodwork = EventFactory.create(EventType.StartBloodworkEvent, this);
	EventBase startUA = EventFactory.create(EventType.StartUAEvent, this);
	EventBase startIV = EventFactory.create(EventType.StartIVEvent, this);
	EventBase startXray = EventFactory.create(EventType.StartXRayEvent, this);
	EventBase startMDAssess = EventFactory.create(EventType.StartFinalMDAssessEvent, this);
	
	
	public HipPatient(int id, int acuity, Date arrivalTime, PatientType type, boolean admit) {
		super(id, acuity, arrivalTime, type, admit);
		treatmentsNeeded.add(TreatmentType.Bloodwork);
		treatmentsNeeded.add(TreatmentType.UA);
		treatmentsNeeded.add(TreatmentType.ECG);
		treatmentsNeeded.add(TreatmentType.IV);
		treatmentsNeeded.add(TreatmentType.XRay);
		treatmentsNeeded.add(TreatmentType.MDAssess);
		treatmentsNeeded.add(TreatmentType.Consultation);
		treatmentsNeeded.add(TreatmentType.FinalMDAssess);
		treatmentsNeeded.add(TreatmentType.AdmitBedRequest);
		treatmentsNeeded.add(TreatmentType.Discharge);
		
		
		eventsNeeded.add(startTriage);
		eventsNeeded.add(startBedAssign);
		eventsNeeded.add(startBloodwork);
		eventsNeeded.add(startUA);
		eventsNeeded.add(startIV);
		eventsNeeded.add(startXray);
		eventsNeeded.add(startMDAssess);
		
		addToSimulator(eventsNeeded);
		
	}
	
	
	private void addToSimulator(ArrayList<EventBase> events) {
		Simulator.addEvents(events);
	}
	
	public boolean isAvailable() {
		return true;
	}
	
	public ArrayList<EventBase> getPatientEvents() {
		return eventsNeeded;
	}
	
}
